var addHelper = function () {

    var geometry = new THREE.SphereBufferGeometry( 2, 4, 2 );
    var material = new THREE.MeshBasicMaterial( { color: 0xff0000, visible: false } );

    return function ( object, helper ) {

        if ( helper === undefined ) {

            if ( object.isCamera ) {

                helper = new THREE.CameraHelper( object );

            } else if ( object.isPointLight ) {

                helper = new THREE.PointLightHelper( object, 1 );

            } else if ( object.isDirectionalLight ) {

                helper = new THREE.DirectionalLightHelper( object, 1 );

            } else if ( object.isSpotLight ) {

                helper = new THREE.SpotLightHelper( object, 1 );

            } else if ( object.isHemisphereLight ) {

                helper = new THREE.HemisphereLightHelper( object, 1 );

            } else if ( object.isSkinnedMesh ) {

                helper = new THREE.SkeletonHelper( object.skeleton.bones[ 0 ] );

            } else {

                // no helper for this object type
                return;

            }

            var picker = new THREE.Mesh( geometry, material );
            picker.name = 'picker';
            picker.userData.object = object;
            helper.add( picker );

        }

        this.sceneHelpers.add( helper );
        this.helpers[ object.id ] = helper;

        this.signals.helperAdded.dispatch( helper );

    };

};

var removeHelper=function ( object ) {

    if ( this.helpers[ object.id ] !== undefined ) {

        var helper = this.helpers[ object.id ];
        helper.parent.remove( helper );

        delete this.helpers[ object.id ];

        this.signals.helperRemoved.dispatch( helper );

    }

}
module.exports={
    
}